Using gestures to deliver content to predefined destinations

ABSTRACT

Disclosed are various embodiments for using gestures to deliver content to predefined destinations. After a user designates a content item, a flick gesture is detected, where the flick gesture has a point of origin and crosses a trip line surrounding the point of origin. A destination associated with the flick gesture is identified from a plurality of predefined destinations. Each predefined destination is associated with a region in a predefined plurality of display regions. The content item is delivered to the determined destination.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/456,036, titled “USING GESTURES TO DELIVER CONTENT TO PREDEFINEDDESTINATIONS,” filed Apr. 25, 2012, the entire contents of which arehereby incorporated herein by reference.

BACKGROUND

Many computing devices now include a gesture user interface that allowsthe user to interact with applications executing on the device throughgestures. Gesturing can be particularly useful when the size of thedevice would make a keyboard inconvenient or impractical.

BRIEF DESCRIPTION OF THE DRAWINGS

Many aspects of the present disclosure can be better understood withreference to the following drawings. The components in the drawings arenot necessarily to scale, emphasis instead being placed upon clearlyillustrating the principles of the disclosure. Moreover, in thedrawings, like reference numerals designate corresponding partsthroughout the several views.

FIG. 1 is a drawing of a networked environment according to oneembodiment of the present disclosure.

FIGS. 2A-2G are examples of a user interface displayed on a computingdevice employed in the networked environment of FIG. 1 according tovarious embodiments of the present disclosure.

FIG. 3 is a flowchart illustrating an example of functionalityimplemented as portions of a gestured-based user interface executed in acomputing device employed in the networked environment of FIG. 1according to various embodiments of the present disclosure.

FIGS. 4A-4E are examples of a user interface displayed on a computingdevice employed in the networked environment of FIG. 1 according tovarious embodiments of the present disclosure.

FIG. 5 is a flowchart illustrating an example of functionalityimplemented as portions of a gestured-based user interface executed in acomputing device employed in the networked environment of FIG. 1according to various embodiments of the present disclosure.

FIG. 6 is a flowchart illustrating another example of functionalityimplemented as portions of a gestured-based user interface executed in acomputing device employed in the networked environment of FIG. 1according to various embodiments of the present disclosure.

FIG. 7 is a schematic block diagram that provides one exampleillustration of a computing device employed in the networked environmentof FIG. 1 according to various embodiments of the present disclosure.

DETAILED DESCRIPTION

Various embodiments described herein relate to the use of gesturing tosimplify the delivery of content. The embodiments may be implemented ona mobile or handheld computing device with a touchscreen, although othertypes of computing devices, displays, and input devices may also beutilized. In some embodiments, regions or areas of the touchscreen areassociated with predefined destinations, and a type of gesture referredto herein as a “flick gesture” is used to deliver selected items ofcontent to one of these destinations. These destinations may includefolders on the device, email addresses, social networking sites, othercomputing devices, and as any other type of destination which thecomputing device can access. The selected items may include files,documents, images, video, audio, web pages, messages, and other types ofcontent.

The flick gesture itself specifies the destination for the selectedcontent. As one example, flicking toward the left side of the displaymay create an email message to a particular contact and insert theselected image as an attachment. As another example, flicking toward theright side of the display may post selected text to a Twitter® account.

In other embodiments, the display regions or areas are associated withdifferent clipboards. Content items can be selected then aggregated oraccumulated into a particular clipboard using a flick gesture. Forexample, flicking toward the top edge of the display may add theselected item to a “family” clipboard while flicking toward the bottomedge of the display may add the selected item to a “my blog” clipboard.After one or more items have been aggregated, the user can interact withapplication(s) to set up delivery of the aggregated content, and thenperform an insert gesture which instructs the application(s) to deliverthe aggregated content. The insert gesture may be, for example, anoff-screen swipe from one of the edges toward an application.

As one example of this aggregation operation, the user may navigate,using the browser, to a page on a photo sharing site that is visible tofamily members. The user may then perform an off-screen swipe from thebottom clipboard region. The aggregated photos from the “family”clipboard are then posted to the photo sharing site on the family page.The user may then navigate using the browser to a page for creating anew blog post, perform an off-screen swipe from the top clipboardregion. The aggregated files from the “my blog” folder are then copiedinto the new blog post.

Though specific examples of content, destinations, and gestures arediscussed herein, it will be understood that other types may be used aswell. In the following discussion, a general description of the systemand its components is provided, followed by a discussion of theoperation of the same.

With reference to FIG. 1, shown is a networked environment 100 accordingto various embodiments. The networked environment 100 includes one ormore computing devices 103 in data communication with one or morecomputing devices 106 by way of a network 109. The network 109 includes,for example, the Internet, intranets, extranets, wide area networks(WANs), local area networks (LANs), wired networks, wireless networks,or other suitable networks, or any combination of two or more suchnetworks.

The computing device 103 may comprise, for example, a processor-basedsystem such as a computer system. Such a computer system may be embodiedin the form of a mobile phone, a web pad, a tablet computer system, anotebook computer, a personal digital assistant, a game console, anelectronic book reader, a set-top box, a television, a music player, avideo player, a media player, a desktop computer, or other devices withlike capability. The computing device 103 includes a display 112 and agesture input device 115. The display 112 may take the form of a cathoderay tube display, a liquid crystal display (LCD) screens, a gasplasma-based flat panel display, or other types of display.

The gesture input device 115 allows a user to input gestures such asdrags, drops, taps, tap-and-holds, swipes, slides, scrolls, flicks,pinches, etc. In some embodiments, the gesture input device 115 includesa motion sensing capability, which allows the user to interact with andmanipulate items on the screen via gesture recognition and pointing. Thegesture input device 115 may, for example, use an accelerometer and/oroptical sensors.

In some embodiments, a touchscreen may combine the functions of thedisplay 112 and the gesture input device 115. The touchscreen may use,for example, capacitive technology, resistive technology, or some othertechnology. The computing device 103 may also include other inputdevices such as a keyboard, touch pad, touch stick, mouse, joystick,game controller, button, etc.

In some embodiments, the computing device 103 may incorporatethree-dimensional and/or haptic technologies. For example, the display112 may be a stereoscopic display, a three-dimensional compositedisplay, a holographic projection display, etc. The gesture input device115 may be a haptic device having an output section which providesfeedback to the user. Examples of such haptic feedback include vibrationdevices, buzzing devices, audio devices, indicator lights, seven-segmentdisplay devices, and so on.

The computing device 103 may be configured to execute one or moreapplications 118, an operating system 121, a gesture-based userinterface 124, and various other components. The applications 118 mayinclude, but are not limited to, productivity tools (e.g., email,calendar, contact databases, word processing, and so on), browsers,media players, games, location-based applications, and electroniccommerce applications. When the computing device 103 is a mobile device,such applications 118 may be referred to as “apps.” The applications 118may access the network 109 and may interoperate with other applications118 and/or with computing devices 106. The applications 118 may bedownloadable from a computing device 106 via the network 109. Theapplications 118 may be purchased or available for free.

The gesture-based user interface 124 allows a user to interact with theapplications 118 through gestures such as drags, drops, taps,tap-and-holds, swipes, slides, scrolls, flicks, pinches, etc.Multi-touch gestures may also be supported. The user makes thesegestures using the gesture input device 115. The gesture-based userinterface 124 supports a flick gesture which allows a user to select anitem of content (e.g., file, image, etc.) and deliver the selected itemto one of a set of predefined destinations, each associated with aregion of the display 112. In other words, the user can select an itemand flick toward a region of the display 112, and the gesture-based userinterface 124 delivers the selected item to a destination that isassociated with that region. Various types of destinations and deliverymay be supported, for example, message delivery to email or instantmessage contacts, saving of files to a folder stored on the computingdevice 103, posting the item to a social networking site, sending theitem to another computing device 106, and so on.

The gesture-based user interface 124 may make use of services providedby the operating system 121, which may in turn use one or more devicedrivers to interface with the gesture input device 115 and the display112. For example, the operating system 121 may notify the gesture-baseduser interface 124 of touchscreen events, mouse events, keyboard events,etc. The operating system 121 may also provide services which allowcomponents such as the gesture-based user interface 124 to render ordraw on the display 112.

The computing device 103 may also comprise a data store 133 which storesvarious types of data, including those used by the gesture-based userinterface 124. The data store 133 includes, for example, gesture mappingdata 136, gesture definition data 139, and configuration data 142. Thegesture-based user interface 124 and/or the operating system 121 use thegesture definition data 139 to detect various gestures and todistinguish between them (e.g., a swipe vs. a scroll, a slide vs. aflick, etc.). The gesture-based user interface 124 uses the gesturemapping data 136 to map between regions of the display 112 and variousdestinations and/or clipboards. The configuration data 142 storesvarious settings which control the behavior of the gesture-based userinterface 124.

Having discussed the computing device 103, the computing device 106 willnow be described. The computing device 106 may comprise, for example, aserver computer or any other system providing computing capability.Various applications and/or other functionality may be executed in thecomputing device 106 according to various embodiments. The computingdevice 106 may also include a data store 148 which stores various typesof data, for example, user behavior data 151. The components executed onthe computing device 106 may include a network page server 145, whichmay be implemented as a commercially available hypertext transferprotocol (HTTP) server such as, for example, Apache® HTTP Server,Microsoft® Internet Information Services (IIS), and other servers. Insome embodiments, the components executed on the computing device 106may also include a gesture data collector 154.

In such embodiments, the gesture data collector 154 operates to collectdata from the gesture-based user interface 124 that is executing on thecomputing device 103. As the user interacts with the user interface 124,information about the user's behavior is provided to the collector 148.For example, the collector 148 may obtain data describing the flickgestures made by the user, the destinations and/or clipboards with whichthe user interacts, the applications with which the user interacts, andthe network sites with which the user interacts. The collector 148 mayprocess this data to make recommendations as to which destinations,clipboards, and/or applications the user may wish to target with a flickgesture. The collector may recommend based on the aggregate behaviordata collected from multiple users. For example, if multiple users arevisiting a particular social networking site, then collector 154 maycommunicate that social networking site to the gesture-based userinterface 124 along with a recommendation that the site be associatedwith the flick gesture destination. The collector 154 may make arecommendation for a user based solely on the behavior of thatparticular user, and in such embodiments, the collector 124 and userbehavior data 151 may be stored locally at the computing device 103rather than at the network-accessible computing device 106.

A general description of the operation of the various components of thenetworked environment 100 is provided. Each of FIGS. 2A-F depicts a userinterface 200 shown on the display 112 (FIG. 1) of the computing device103 (FIG. 1). As will be described herein, the gesture-based userinterface 124 (FIG. 1) allows the user to designate a particular contentitem 203 to be sent to one of a set of predefined destinations such asfolders, contacts, network sites, etc., and then to indicate theparticular destination by means of a flick gesture.

The gesture-based user interface 124 may provide a configuration optionwhich allows the user to specify these destinations and the associationbetween destinations and regions of the display 112. For example, theuser may define a destination in terms of an application (e.g., fileexplorer, email, browser, etc.) and/or a location (e.g., folder, emailcontact, network site, etc.). In some embodiments, the user may view thedestinations in a hierarchy (e.g., Contacts, Social Networking Sites,Folders, and Devices). Each of these top level groups may have groupsunderneath (e.g., Twitter, Facebook, StumbleUpon, etc.), with andmultiple levels may be supported (e.g., Jane's Facebook, Bob's Facebook,etc.). The gesture-based user interface 124 may provide a configurationinterface which allows the user to specify these various configurationoptions, which are then stored as configuration data 142.

The gesturing described herein provides a simple mechanism for a user todesignate a content item 203, to identify a destination that correspondsto a display region, and to easily deliver the designated content item203 to the destination. The user interfaces 200 shown in FIGS. 2A-2Fillustrate an example of this process of designating a content item 203,identifying a destination for the content item 203, and causing thegesture-based user interface 124 to send the designated content item 203to the identified destination.

As shown in FIG. 2A, a user interacts with an application 118 (FIG. 1)through the gesture-based user interface 124 (FIG. 1) to view, browse,navigate, or otherwise interact with one or more content items 203. Thecontent item 203 may comprise, for example, a file, a folder, adocument, a network page, an image, a video, an audio file, an emailmessage, etc. In the example of FIG. 2A, the content items 203 take theform of photos displayed by a photo gallery application 118. The userinterface 200 may visually represent the content items 203 with icons.For some types of content items 203, each icon is a thumbnail, orsmaller representation, of the actual content. For content items 203,the icon may instead represent the type of content. For example, theicon for a text document may be shown as a sheet of paper, the icon fora subdirectory in a file system may be shown as a folder, etc. In theexample of FIG. 2A, the content items 203 are arranged in a grid.However, other arrangements of multiple content items 203 are possible.

Turning now to FIG. 2B, the user begins the process of sending a contentitem 203 to a particular predefined destination by performing a gesturewhich designates a particular content item 203 as one intended for apredefined destination. In the example user interface of FIG. 2A, thegesture used to designate is a tap-and-hold gesture at location 206 onthe display 112. For a tap and hold gesture, the user touches one of thecontent items 203 at a particular screen location 206 and continues totouch for some predefined period of time. The touch may take the form ofa physical touch or may take the form of clicking the mouse button, forexample, in which case the hold might correspond to holding the mousebutton for the predefined period.

The gesture-based user interface 124 may provide a visual and/or audioindication that the content item 203 has been designated. FIG. 2Cillustrates one example of such an indication, in which the icon for thecontent item 203 begins flashing (suggested by circular region 207). Asanother example, the icon for the content item 203 may be animated insome way to show movement. As yet another example, the gesture-baseduser interface 124 may use a tone or sound to alert the user that thecontent item 203 has been designated. The gesture-based user interface124 may support more than one type of indication and allow the user tochoose between them via a configuration interface, where thegesture-based user interface 124 stores the user's choices asconfiguration data 142. Finally, although the designation of a contentitem 203 described in connection with FIG. 2B involves selecting oneitem from multiple items, the user may also select a single content item203 when that item is the only content item 203 shown.

Once the user has designated a content item 203, or a portion of acontent item 203, to send to a destination, the user then uses aspecific gesture to identify which destination among of a set ofpredefined destinations. This gesture is referred to herein as a “flickgesture.” Destinations may correspond, for example, to folders, email orphone contacts, social networking sites, blogs, note-taking sites, mediasharing sites, etc.

Referring now to FIG. 2D, each predefined destination for the contentitem 203 is associated with a particular region 212 of the display 112.By gesturing toward one of these predefined regions 212, the userinstructs the gesture-based user interface 124 to send the designatedcontent item 203 to the destination associated with this region 212.Thus, a user can quickly send a photo to his friend via an emailmessage, or can quickly save a document to a particular folder, byperforming a gesture that identifies the friend, folder, etc. The usermay define these destinations and associate the destinations withregions 212 via a configuration interface, where the gesture-based userinterface 124 stores these settings as configuration data 142.

User designation of a content item 203 for sending to a destinationcauses the gesture-based user interface 124 to change state and look fora flick gesture that identifies one of a set of predefined destinations.As shown in FIG. 2D, a flick gesture involves a touch at a point oforigin 206 followed by movement 209 toward one of a set of predefinedregions 212 of the display 112. Since a flick gesture involves a touchand move, a flick gesture can be described by a point of origin 206 andmovement 209, along a track, toward a region 212.

The display 112 may be divided into any number of regions 212. Theregions 212 may comprise only a subset of the display 112. For example,in the example embodiment shown in FIG. 2D, the display 112 is dividedinto four regions 212, one for each edge of a rectangular display 112.In another embodiment, the display 112 is divided into four regions 212,one for each corner of a rectangular display 112. In other embodiments,the entire display 112 may be divided into some number of rectangularregions 212 which form a grid. In still other embodiments, the regions212 have a shape that is other than rectangular.

In some embodiments that incorporate three-dimensional display and/orinput technologies, the regions 212 are arranged in three-dimensionalspace. For example, rather than a two-dimensional grid of regions 212 onthe screen, the flick gesture destinations may correspond to athree-dimensional grid of regions 212 in space. While variousembodiments described herein involve regions 212 laid out in a lineargrid, non-linear arrangements are also possible.

The gesture-based user interface 124 may use the distance from the pointof origin 206 to determine that the flick gesture has identified aparticular delivery destination. That is, the gesture-based userinterface 124 may utilize a “tripline” at a predetermined distance fromthe point of origin 206, and consider any movement 209 past thistripline to be an indication that a particular region 212, and thus aparticular destination, has been chosen. For example, consider ascenario in which the predefined destinations are associated with thefour edges of a rectangular display 112. The gesture-based userinterface 124 may detect when the track of a flick gesture extends morethan an inch in any direction, and further determine which region 212lies in this direction. In such a scenario, the gesture-based userinterface 124 may determine that the user has selected this region 212and the predefined destination associated with this region 212 as thedestination for content delivery.

In addition to including a point of origin 206, the flick gesture isalso described in terms of velocity and/or acceleration, that is, howquickly the user moves from the point of origin 206 toward thedestination region 212. The flick gesture may be distinguished in thisrespect from other gestures such as swipe or scroll, in that the flickgesture involves a faster or jerkier movement than does a swipe orscroll. In some embodiments, the flick gesture may therefore be detectedby a touch and hold for a first predefined threshold period, followed bya movement 209 having a velocity or acceleration exceeding a secondpredefined threshold period.

In some embodiments, the final destination of the flick gesture dependson the velocity and/or acceleration of the flick. For example, arelatively low speed flick gesture may indicate a destination that isrelatively close to the center of origin of the flick gesture while arelatively high speed flick gesture may indicate a destination that isfarther away from the center of origin. This behavior may be viewed asinvolving a frictional component, such that a faster or jerkier motionovercomes the friction and thus “lands” farther away, while a slower orsmoother motion does not overcome the friction and thus “lands” closerto the point of origin.

Some forms of the flick gesture involve a tap at a point of originfollowed by a move in a single direction. In other scenarios, a user maytap at a point of origin and then move in a first direction, then in asecond direction, and so on, before finally completing the gesture bylifting the finger off the screen. Such a flick gesture thus involvesmore than a tap followed by a move toward a single destination or region212 of the screen, as the user's finger moves toward several differentscreen regions 212 before the flick gesture is complete. In suchscenarios, the gesture-based user interface 124 may derive movementtoward a particular final screen region 212 by computing a vector ortrajectory based on the last direction, or based on the last N pointsover which the user's finger traveled, or some combination thereof.

The flick gesture may be distinguished in another respect from othergestures such as swipe or scroll, in that the track of the flick gesturemay be shorter than the track of a swipe or scroll. That is, a usermaking a flick gesture may touch the display 112 and then move hisfinger for a relatively small distance, such as an inch or less, whereasa swipe or scroll may be a much larger motion, on the order of severalinches or more. Therefore, in some embodiments, the flick gesture may bedetected by a touch at a point of origin 206, a hold at this point oforigin 206 for a first predefined threshold period, followed by movement209 to a second point, where the distance between the first and secondpoints is under a second predefined threshold.

The flick gesture is also distinguishable from a drag-and-drop gesturein that a drag-and-drop requires the user to move all the way to thedestination. For example, inserting a file into a folder via adrag-and-drop requires the user to move all the way to the folder. Incontrast, the flick gesture is a move toward a destination, and does notrequire the motion to complete at the destination.

Some embodiments of the gesture-based user interface 124 provide avisual representation of the set of predefined destinations and theirassociation with the display regions 212. This visual indication mayappear, for example, after the user has designated content so as toremind the user what his options are for the different predefineddestinations. The gesture-based user interface 124 may support more thanone type of indication and allow the user to choose between them via aconfiguration interface, where the gesture-based user interface 124stores the user's choices as configuration data 142.

An example of one such representation is shown in FIG. 2E, where thegesture-based user interface 124 displays a set of labels 215 withineach of the various regions 212. Each label 215 includes text with thename of the destination. In the embodiment of FIG. 2E, the regions 212correspond to the edges of the screen, and are labeled: “Email to Bob”;“Jane's FaceBook page”; “My Favorite Photos”; and “My Tablet.” Theselabels 215 may appear when the gesture-based user interface 124 hasdesignated a content item 203. The labels 215 may be visuallydistinguished by a highlight, transparency, flashing, or some othermechanism for drawing the user's attention to the labels 215. The usermay define the text of the labels 215 via a configuration interface, orthe gesture-based user interface 124 may derive the text from thecorresponding destination.

FIG. 2F shows another visual representation of the set of predefineddestinations and their association with the display regions 212. In thisembodiment, the gesture-based user interface 124 displays a circulararrangement 218 of labels, centered approximately at the point of origin206 of the flick gesture. These labels 215 may appear as highlighted ortransparent so as not to interfere with other objects appearing in thesame area of the display 112. The circular arrangement 218 may appear,for example, when the user has designated a content item 203. Such acircular arrangement 218 also provides a visual indication of the tripline 221 surrounding the point of origin 206. Thus, by seeing thecircular arrangement 218, the user knows how far the flick gestureshould extend in order to “trip” or select each of the regions 212 andassociated destinations.

In some embodiments, the gesture-based user interface 124 provides ahierarchy of destinations. For example, one corner of the display 112may be associated with email contacts, and the user may specify aparticular email contact after the flick gesture. In such an embodiment,the gesture-based user interface 124 may display an additional set oflabels once a particular region 212 has been selected, and the user mayperform another flick gesture to choose a particular email address.

FIG. 2G shows an example of an additional set of labels for a secondlevel of destinations. In this embodiment, as in the one shown in FIG.2F, the gesture-based user interface 124 displays a circular arrangement218 of labels when the user has designated a content item 203. In thescenario of FIG. 2G, the user drags the designated content item 203 inthe direction 224 of a particular label, here, the email label 227. Indoing so, the user's drag gesture crosses over “Email to Bob” 215. Atthis point, the gesture-based user interface 124 displays a set oflabels 215 within each of the various regions 212. After crossing overthe “Email to Bob” 215, the user then makes a flick gesture toward aspecific region 212. Each label 215 includes text with the name of aspecific email contact. In the embodiment of FIG. 2F, the regions 212correspond to the edges of the screen, and are labeled: “Email to Bob”;“Email to Jane”; “Email to Mary”; and “Email to Boss.”

Through the process described in connection with FIGS. 2A-F, the usersends a content item 203 to a predefined destination by firstdesignating or selecting a content item 203, then performing a flickgesture that is associated with a predefined display region 212. Thepredefined regions 212 are in turn associated with predefineddestinations. In some embodiments, the gesture-based user interface 124may provide a confirmation when the designated content item 203 has beensent to the destination.

In the embodiments described above, the user designates an entirecontent item 203 for delivery to a predefined destination. In otherembodiments, the user may, as part of the designation process, select aportion of a content item 203 for delivery to a predefined destination.For example, the user may select a portion of a document or networkpage, or a portion of an image, or a segment of a video or audio file.The partial designation process allows a user to easily share a fewlines from an article on a network page to his friends via a post on asocial networking site. The features described in connection with FIGS.2A-2F also apply to partial selection embodiments.

Turning now to FIG. 3, shown is a flowchart that provides one example ofthe operation of portion(s) of the gesture-based user interface 124according to various embodiments. It is understood that the flowchart ofFIG. 3 provides merely an example of the many different types offunctional arrangements that may be employed to implement the operationof portion(s) of the gesture-based user interface 124 as describedherein. As an alternative, the flowchart of FIG. 3 may be viewed asdepicting an example of steps of a method implemented in the computingdevice 103 (FIG. 1) according to one or more embodiments.

Beginning at box 303, the gesture-based user interface 124 detects auser gesture designating a content item 203 (FIGS. 2A-2B) for deliveryto a predefined destination. The designation may correspond to a genericselection of an item for any purpose, or may be a designation that isspecific to delivery to a predefined destination. For example, if thegesture-based user interface 124 uses a single tap for genericselection, a double tap may be used to designate delivery to adesignation. The gesture-based user interface 124 may utilize any typeof gesture for this designation as may be appreciated.

In detecting the designation gesture, the gesture-based user interface124 may receive various events from the operating system 121, and thenprocess those events to detect different types of gestures. The eventsmay be low-level events such as touches from which the gesture-baseduser interface 124 can detect types of gestures, or may be higher-levelevents which represent entire gestures.

At box 306, the gesture-based user interface 124 displays a visualrepresentation of the predefined destinations, in conjunction with theregions 212 of the display 112. Several examples of such a visualrepresentation were discussed earlier, including labels appearing withinthe regions 212 and labels appearing around the point of origin 206.

Next, at box 309, the gesture-based user interface 124 detects a flickgesture, described by a point of origin 206 and movement 209. Themovement 209 may be represented as a track or series of points, avector, an endpoint, or some combination thereof, as well as other typesof representations as should be appreciated. The description of theflick gesture may also include a velocity of the gesture movement oracceleration of the gesture movement.

At box 312, the gesture-based user interface 124 processes the movement209 information contained in the flick gesture to determine which region212 of the display 112 that the user has gestured toward. For example,if the regions 212 correspond to the corners of the display 112, thegesture-based user interface 124 may correlate any movement toward thetop left quadrant of the display 112 with the top left corner region212. Similarly, if the regions 212 correspond to the edges of thedisplay 112, the gesture-based user interface 124 may correlate anymovement toward the top left quadrant of the display 112 with the topedge region 212.

Next, at box 315, the gesture-based user interface 124 determines whichof the set of predefined destinations is associated with the region 212identified in box 312. This association may be retrieved from thegesture mapping data 136. As noted above, the user may configure thegesture-based user interface 124 to specify these destinations and theassociation between destinations and regions 212.

Once a destination is identified, at box 318, the gesture-based userinterface 124 takes action to deliver the designated content item 203 tothe identified destination. The gesture-based user interface 124 mayinclude code to deliver the content to some types of destinations, butmay also invoke an application 118 executing on the computing device 103to deliver other types of content. For example, the gesture-based userinterface 124 may deliver a file to a locally stored folder or deliver atext message to a phone number contact, while relying on an emailapplication 118 to send a message to a destination that is specified asan email address.

The specifics of the action depend on the type of destination. Forexample, if the destination is an email contact, the gesture-based userinterface 124 may communicate with an email application 118 executing onthe computing device 103 in order to create an email message addressedto the contact, insert the content item 203 into the message, and sendthe message. Depending on the type of content item 203, the item may beinserted inline into the message, or may be attached to the message. Asanother example, if the destination is a social networking site, thegesture-based user interface 124 may log in to the site (usinginformation stored in the gesture mapping data 136) and create a post onthe site that includes the content item 203. As yet another example, ifthe destination is another computing device 103, the gesture-based userinterface 124 may initiate communications with the other computingdevice 103 and then transfer the content item 203 using a networkprotocol. During this communication process, the gesture-based userinterface 124 may provide the other computing device 103 withcredentials that identify the user, where these credentials may bestored in the gesture mapping data 136.

The embodiments discussed above involve delivering a single content item203 to a predefined destination. Other embodiments of the gesture-baseduser interface 124 allow a user, through gesturing, to accumulate oraggregate content items 203 in a clipboard associated with a region 212of the display 112. The user may label these clipboards and associatethe clipboards with regions 212 via a configuration interface, where thegesture-based user interface 124 stores these settings as configurationdata 142.

After the accumulation is complete, the user interacts with anapplication 118 to set up delivery of the accumulated content to adestination. For example, the user may execute a browser application 118to log in to a friend's social networking page. At this point, the userperforms a gesture which instructs the gesture-based user interface 124to insert all of the aggregated content items 203 from the clipboardinto the social networking page.

FIGS. 4A-4F illustrate the process of accumulating content items 203,interacting with an application 118 to set up an object for contentdelivery to a destination, and causing the gesture-based user interface124 to insert the accumulated content items 203 into the object fordelivery to the identified destination. As shown in FIG. 4A, a userinteracts with an application 118 (FIG. 1) through the gesture-baseduser interface 124 (FIG. 1) to view, browse, navigate, or otherwiseinteract with one or more content items 203. In the example of FIG. 4A,the content items 203 take the form of text and images shown on anetwork page 403, after rendering by a browser application 118 (FIG. 1).

With reference now to FIG. 4B, the user then selects content items 203and/or portions of content items 203. In this example, the user hasselected a few lines of text 406 and an image 409. Having selected oneor more items, the user performs a flick gesture in a region whichincludes selected content items 203. The flick gesture instructs thegesture-based user interface 124 to add the selected content items 203to a clipboard associated with the flick gesture. As discussed above,the flick gesture includes a point of origin 206 and movement 209 in adirection of a region 212 of the display 112. The gesture-based userinterface 124 manages one or more clipboards, each associated with aregion 212. A flick gesture in the direction of a region 212 instructsthe gesture-based user interface 124 to add the selected content item203 to the clipboard associated with that region 212.

The gesture-based user interface 124 may provide a visual or audioindication that content items 203 and/or portions of content items 203are being accumulated at a particular region 212. For example, thegesture-based user interface 124 may use color, transparency,highlighting, or other types of cues in the region 212. The visualindication may include a label which distinguishes the clipboards andthe regions 212, for example, a name for the clipboard given by theuser.

Turning now to FIG. 4C, having accumulated one or more content items203, the user then interacts with an application 118 to set up an objectto deliver content to a destination. This application 118 may be thesame as the one from which content was accumulated, or may be adifferent one. In this example, the application 118 used to deliver theaccumulated content is an email application 118. The user interacts withthe application 118 to create a message 412 and address it to a contact.At this point, the user performs an insert gesture 415 which instructsthe gesture-based user interface 124 to insert all of the aggregatedcontent items 203 from a particular clipboard into the message 412. Asone example, the insert gesture 415 may be a swipe from the region 212associated with the clipboard toward a location of the application 118.In some embodiments, the insert gesture 415 also causes thegesture-based user interface 124 to stop accumulating. In otherembodiments, a separate action or gesture is used to stop accumulation.

As shown in FIG. 4D, in response to an insert gesture 415, thegesture-based user interface 124 interoperates with the application 118to insert into the email message 412 all of the aggregated content items203 from the clipboard associated with the insert gesture 415. Thegesture-based user interface 124 may utilize, for example, anapplication programming interface (API) provided by the application 118or by the operating system 121 (e.g., an Insert_From_Clipboardfunction). In this example, the selected lines of text 406 are insertedin the body of the message 412 and the selected image 409 is inserted asan attachment 418. The insertion type may be a configuration option, maydepend on the location of the insert gesture 415, or may depend on thetype of the content items 203, or some combination thereof.

The embodiment shown in FIG. 4D, an insert gesture 415 operates toinsert all the content items 203 from a particular clipboard. Otherembodiments allow the user to select one or more particular contentitems 203 from a clipboard after performing an insert gesture 415. Anexample of such an embodiment is shown in FIG. 4E.

As can be seen in FIG. 4E, the user interacts with the application 118to create a message 412 and address it to a contact, then performs aninsert gesture 415. In this embodiment, the gesture-based user interface124 causes a clipboard viewer 421 to be displayed. The clipboard viewerincludes a list of the content items 203 that are currently stored inthe clipboard associated with the insert gesture 415. The user thenselects one or more of the content items 203 from the clipboard viewer421, and in response, the gesture-based user interface 124 interoperateswith the application 118 to insert into the email message 412 theselected content item(s) 203 from the clipboard.

In some embodiments, multiple clipboards may be in use at one time. Forexample, a user may use the right side of the display 112 as a clipboardfor the user's own Twitter® account, and the left side of the display112 as a clipboard for a friend's Facebook® page. As the user interactswith content by performing activities such as browsing network pages,reading email, and viewing locally stored documents, the user mayaccumulate content items 203 to the two clipboards. The user may thennavigate to his account on the Twitter® site and swipe from the rightoff-screen area to the Twitter® network page, which will insertaccumulated content items 203 stored in the Twitter® clipboard.Similarly, the user may navigate to his friend's account on theFacebook® site and swipe from the right off-screen area to the Facebook®network page, which will insert accumulated content items 203 stored inthe Facebook® clipboard.

Turning now to FIG. 5, shown is a flowchart that provides one example ofthe operation of portion(s) of the gesture-based user interface 124according to various embodiments. It is understood that the flowchart ofFIG. 5 provides merely an example of the many different types offunctional arrangements that may be employed to implement the operationof portion(s) of the gesture-based user interface 124 as describedherein. As an alternative, the flowchart of FIG. 5 may be viewed asdepicting an example of steps of a method implemented in the computingdevice 103 (FIG. 1) according to one or more embodiments.

Beginning at box 503, the gesture-based user interface 124 detects auser gesture selecting a content item 203 (FIGS. 2A-2F) for accumulationto a particular clipboard. In detecting the selection gesture, thegesture-based user interface 124 may receive various events from theoperating system 121, and then process those events to detect differenttypes of gestures. The events may be low-level events such as touchesfrom which the gesture-based user interface 124 can detect types ofgestures, or may be higher-level events which represent entire gestures.

Next, at box 506, the gesture-based user interface 124 detects a flickgesture, described by a point of origin 206 and movement 209 (FIG. 4B).The movement 209 may be represented as a track or series of points, avector, an endpoint, or some combination thereof, as well as other typesof representations as should be appreciated. The description of theflick gesture may also include a velocity of the gesture movement oracceleration of the gesture movement.

At box 509, the gesture-based user interface 124 processes the movement209 information contained in the flick gesture to determine which region212 of the display 112 that the user has gestured toward. For example,if the regions 212 correspond to the corners of the display 112, thegesture-based user interface 124 may correlate any movement toward thetop left quadrant of the display 112 with the top left corner region212. Similarly, if the regions 212 correspond to the edges of thedisplay 112, the gesture-based user interface 124 may correlate anymovement toward the top left quadrant of the display 112 with the topedge region 212. Having determined the region 212, the gesture-baseduser interface 124 determines which of the set of predefined clipboardsis associated with the region 212. This association may be retrievedfrom the gesture mapping data 136. As noted above, the user mayconfigure the gesture-based user interface 124 to associate clipboardswith regions 212 and to label or name the clipboards.

Having identified a clipboard, at box 512 the gesture-based userinterface 124 adds the selected content item 203 to the clipboard. Next,at box 515, the user interacts with one more applications 118 andobjects maintained by those applications 118, in order to set updelivery of the accumulated content items 203 to the identifieddestination. For example, the user may open up a document in a wordprocessing application 118, use an email application 118 to create andaddress an email message, or may use a browser application 118 tonavigate through pages on a network site.

At box 518, the gesture-based user interface 124 looks for an insertgesture 415. If no insert gesture 415 is detected, then processingcontinues at box 503. Thus, this process of selecting content items 203,flicking the items to a clipboard for accumulation, and interacting withapplications 118 continues until an insert gesture 415 is detected. Uponsuch detection, processing continues at box 521.

At box 521, the gesture-based user interface 124 determines, from theinsert gesture 415, which clipboard the user intends to use as a sourceof accumulated content, and which application 118 the user intends as adestination for the accumulated content. The gesture-based userinterface 124 may use, for example, the origin of the gesture todetermine the clipboard and the direction of the gesture to determinethe application 118. Then gesture-based user interface 124 theninteracts with this application 118 to cause the accumulated contentitems 203 from the particular clipboard to be inserted into theparticular application object. The nature of such interactions willdepend on the type of application and content as may be appreciated. Theprocess of FIG. 5 is then complete.

In the embodiment described in connection with FIG. 5, the gesture-baseduser interface 124 responds to an insert gesture 415 at box 521 byinserting all aggregated content items 203 into the application object.For some embodiments which allow the user to select particular contentitems 203 for insertion, the functionality of box 521 is expanded, aswill now be described in connection with FIG. 6.

Turning now to FIG. 6, shown is a flowchart that provides one example ofthe operation of portion(s) of the gesture-based user interface 124according to various embodiments. In particular, the flowchart of FIG. 6describes, in more detail, the functionality of box 521 in FIG. 5. It isunderstood that the flowchart of FIG. 6 provides merely an example ofthe many different types of functional arrangements that may be employedto implement the operation of portion(s) of the gesture-based userinterface 124 as described herein. As an alternative, the flowchart ofFIG. 6 may be viewed as depicting an example of steps of a methodimplemented in the computing device 103 (FIG. 1) according to one ormore embodiments.

The process of FIG. 6 begins after a flick gesture and then an insertgesture 421 are detected. Beginning at box 603, the gesture-based userinterface 124 displays, in a clipboard viewer 421, the accumulatedcontents of the clipboard that is associated with the insert gesture421. At box 606, the gesture-based user interface 124 receives a userselection of one or more content items 203 from the clipboard. Next, atbox 609, the user interface 124 waits for another flick gesture. At box612, the user interface 124 determines, from the direction of the flickgesture, a particular application object for insertion. For example, aflick toward an email message indicates insertion into that emailmessage, while a flick toward a folder indications insertion into thatfolder. Finally, at box 615, the gesture-based user interface 124interacts with this application 118 to cause the selected content items203 from the clipboard to be inserted into the application objectspecified by the flick gesture that was detected at box 609.

Turning now to FIG. 6, shown is a schematic block diagram of thecomputing device 103 according to an embodiment of the presentdisclosure. The computing device 103 includes at least one processorcircuit, for example, having a processor 703 and a memory 706, both ofwhich are coupled to a local interface 709. The local interface 709 maycomprise, for example, a data bus with an accompanying address/controlbus or other bus structure as can be appreciated. Also coupled to thelocal interface 709 are the gesture input device 115 and the display 112(discussed earlier in connection with FIG. 1). A display 112 and agesture input device 115 are also attached to, coupled to, or integratedwith the computing device 103. In some embodiments, the computing device103 also includes a network interface (not shown).

Stored in the memory 706 are both data and several components that areexecutable by the processor 703. In particular, stored in the memory 706and executable by the processor 703 are the applications 118, theoperating system 121, and the gesture-based user interface 124. Othercomponents may also be stored in the memory 706 and executable by theprocessor 703. While not illustrated, the computing device 106 (FIG. 1)also includes components like those shown in FIG. 7.

It is understood that there may be other applications that are stored inthe memory 706 and are executable by the processor 703 as can beappreciated. Where any component discussed herein is implemented in theform of software, any one of a number of programming languages may beemployed such as, for example, C, C++, C#, Objective C, Java,JavaScript, Perl, PHP, Visual Basic, Python, Ruby, Delphi, Flash, orother programming languages.

A number of software components are stored in the memory 706 and areexecutable by the processor 703. In this respect, the term “executable”means a program file that is in a form that can ultimately be run by theprocessor 703. Examples of executable programs may be, for example, acompiled program that can be translated into machine code in a formatthat can be loaded into a random access portion of the memory 706 andexecuted by the processor 703, source code that may be expressed inproper format such as object code that is capable of being loaded into arandom access portion of the memory 706 and executed by the processor703, or source code that may be interpreted by another executableprogram to generate instructions in a random access portion of thememory 706 and executed by the processor 703, etc. An executable programmay be stored in any portion or component of the memory 706 including,for example, random access memory (RAM), read-only memory (ROM), harddrive, solid-state drive, USB flash drive, memory card, optical discsuch as compact disc (CD) or digital versatile disc (DVD), floppy disk,magnetic tape, or other memory components.

The memory 706 is defined herein as including both volatile andnonvolatile memory and data storage components. Volatile components arethose that do not retain data values upon loss of power. Nonvolatilecomponents are those that retain data upon a loss of power. Thus, thememory 706 may comprise, for example, random access memory (RAM),read-only memory (ROM), hard disk drives, solid-state drives, USB flashdrives, memory cards accessed via a memory card reader, floppy disksaccessed via an associated floppy disk drive, optical discs accessed viaan optical disc drive, magnetic tapes accessed via an appropriate tapedrive, and/or other memory components, or a combination of any two ormore of these memory components. In addition, the RAM may comprise, forexample, static random access memory (SRAM), dynamic random accessmemory (DRAM), or magnetic random access memory (MRAM) and other suchdevices. The ROM may comprise, for example, a programmable read-onlymemory (PROM), an erasable programmable read-only memory (EPROM), anelectrically erasable programmable read-only memory (EEPROM), or otherlike memory device.

Also, the processor 703 may represent multiple processors and the memory706 may represent multiple memories that operate in parallel processingcircuits, respectively. In such a case, the local interface 709 may bean appropriate network 109 (FIG. 1) that facilitates communicationbetween any two of the multiple processors 703, between any of theprocessors 703 and any of the memories 706, or between any two of thememories 706, etc. The local interface 709 may comprise additionalsystems designed to coordinate this communication, including, forexample, performing load balancing. The processor 703 may be ofelectrical or of some other available construction.

Although the applications 118, the operating system 121, and thegesture-based user interface 124, and other various systems describedherein may be embodied in software or code executed by general purposehardware as discussed above, as an alternative the same may also beembodied in dedicated hardware or a combination of software/generalpurpose hardware and dedicated hardware. If embodied in dedicatedhardware, each can be implemented as a circuit or state machine thatemploys any one of or a combination of a number of technologies. Thesetechnologies may include, but are not limited to, discrete logiccircuits having logic gates for implementing various logic functionsupon an application of one or more data signals, application specificintegrated circuits having appropriate logic gates, or other components,etc. Such technologies are generally well known by those skilled in theart and, consequently, are not described in detail herein.

The flowcharts of FIG. 3, FIG. 5, and FIG. 6 show the functionality andoperation of an implementation of portions of the gesture-based userinterface 124. If embodied in software, each block may represent amodule, segment, or portion of code that comprises program instructionsto implement the specified logical function(s). The program instructionsmay be embodied in the form of source code that comprises human-readablestatements written in a programming language or machine code thatcomprises numerical instructions recognizable by a suitable executionsystem such as one of the processors 703 in a computer system or othersystem. The machine code may be converted from the source code, etc. Ifembodied in hardware, each block may represent a circuit or a number ofinterconnected circuits to implement the specified logical function(s).

Although the flowcharts of FIG. 3, FIG. 5, and FIG. 6 show a specificorder of execution, it is understood that the order of execution maydiffer from that which is depicted. For example, the order of executionof two or more blocks may be scrambled relative to the order shown.Also, two or more blocks shown in succession in the flowcharts of FIG.3, FIG. 5, and FIG. 6 may be executed concurrently or with partialconcurrence. Further, in some embodiments, one or more of the blocksshown in FIG. 3, FIG. 5, and FIG. 6 may be skipped or omitted. Inaddition, any number of counters, state variables, warning semaphores,or messages might be added to the logical flow described herein, forpurposes of enhanced utility, accounting, performance measurement, orproviding troubleshooting aids, etc. It is understood that all suchvariations are within the scope of the present disclosure.

Also, any logic or application described herein (including theapplications 118, the operating system 121, and the gesture-based userinterface 124) that comprises software or code can be embodied in anynon-transitory computer-readable medium for use by or in connection withan instruction execution system such as, for example, the processor 703in a computer system or other system. In this sense, the logic maycomprise, for example, statements including instructions anddeclarations that can be fetched from the computer-readable medium andexecuted by the instruction execution system. In the context of thepresent disclosure, a “computer-readable medium” can be any medium thatcan contain, store, or maintain the logic or application describedherein for use by or in connection with the instruction executionsystem. The computer-readable medium can comprise any one of manyphysical media such as, for example, magnetic, optical, or semiconductormedia. More specific examples of a suitable computer-readable mediumwould include, but are not limited to, magnetic tapes, magnetic floppydiskettes, magnetic hard drives, memory cards, solid-state drives, USBflash drives, or optical discs. Also, the computer-readable medium maybe a random access memory (RAM) including, for example, static randomaccess memory (SRAM) and dynamic random access memory (DRAM), ormagnetic random access memory (MRAM). In addition, the computer-readablemedium may be a read-only memory (ROM), a programmable read-only memory(PROM), an erasable programmable read-only memory (EPROM), anelectrically erasable programmable read-only memory (EEPROM), or othertype of memory device.

It should be emphasized that the above-described embodiments of thepresent disclosure are merely possible examples of implementations setforth for a clear understanding of the principles of the disclosure.Many variations and modifications may be made to the above-describedembodiment(s) without departing substantially from the spirit andprinciples of the disclosure. All such modifications and variations areintended to be included herein within the scope of this disclosure andprotected by the following claims.

Therefore, the following is claimed:
 1. A non-transitorycomputer-readable medium embodying computer-readable programinstructions stored thereon that, when executed by at least onecomputing device, direct the at least one computing device to at least:detect a selection of content via a touchscreen; detect a first flickgesture via the touchscreen, the first flick gesture comprising flickingtowards a first edge of the touchscreen; determine a clipboard fromamong a plurality of clipboard destinations based on the first flickgesture; add the content to the clipboard in response to the first flickgesture; detect a second flick gesture via the touchscreen, the secondflick gesture comprising flicking from the first edge of the touchscreentowards a user interface display associated with an application, whereinthe application is separate from the clipboard; and deliver the contentfrom the clipboard to the application in response to the second flickgesture.
 2. The non-transitory computer-readable medium of claim 1,wherein the at least one computing device is further directed to: detecta second selection of second content via the touchscreen; detect a thirdflick gesture via the touchscreen, the third flick gesture comprisingflicking towards a second edge of the touchscreen; determine a secondclipboard from among the plurality of clipboard destinations based onthe third flick gesture; and add the second content to the secondclipboard in response to the third flick gesture.
 3. The non-transitorycomputer-readable medium of claim 2, wherein the at least one computingdevice is further directed to: detect a third selection of third contentvia the touchscreen; detect a fourth flick gesture via the touchscreen;determine the second clipboard from among the plurality of clipboarddestinations based on the fourth flick gesture; and add the thirdcontent to the second clipboard, along with the second content, inresponse to the fourth flick gesture.
 4. The non-transitorycomputer-readable medium of claim 3, wherein the fourth flick gesturecomprises flicking towards the second edge of the touchscreen.
 5. Thenon-transitory computer-readable medium of claim 3, wherein: the atleast one computing device is further directed to display contents ofthe second clipboard, including the second content and the thirdcontent, in response to the second flick gesture.
 6. The non-transitorycomputer-readable medium of claim 5, wherein the at least one computingdevice is further directed to, in response to the selection of at leastone of the contents of the second clipboard, deliver the at least one ofthe contents to the application.
 7. The non-transitory computer-readablemedium of claim 1, wherein the at least one computing device is furtherdirected to display a visual indication of the selection of the content.8. A method, comprising: detecting, by at least one computing device, afirst selection of first content via a touchscreen; detecting, by the atleast one computing device, a first flick gesture via the touchscreen,the first flick gesture comprising flicking towards a first edge of thetouchscreen; determining, by the at least one computing device, a firstclipboard from among a plurality of clipboard destinations and addingthe content to the first clipboard based on the first flick gesture;detecting, by the at least one computing device, a second selection ofsecond content via the touchscreen; detecting, by the at least onecomputing device, a second flick gesture via the touchscreen, the secondflick gesture comprising flicking from the first edge of the touchscreentowards a user interface display associated with an application, whereinthe application is separate from the first clipboard; and determining,by the at least one computing device, a second clipboard from among theplurality of clipboard destinations and adding the second content to thesecond clipboard based on the second flick gesture.
 9. The method ofclaim 8, wherein the plurality of clipboard destinations are associated,respectively, with a plurality of different applications.
 10. The methodof claim 8, further comprising: detecting, by the at least one computingdevice, a third flick gesture from the first edge of the touchscreentowards a user interface display associated with an application; anddelivering, by the at least one computing device, the first content fromthe first clipboard to the application in response to the third flickgesture.
 11. The method of claim 10, further comprising: detecting, bythe at least one computing device, a third selection of third contentvia the touchscreen; detecting, by the at least one computing device, athird flick gesture via the touchscreen; and adding, by the at least onecomputing device, the third content to the second clipboard based on thethird flick gesture.
 12. The method of claim 11, further comprising:detecting, by the at least one computing device, a fourth flick gesturefrom a second edge of the touchscreen towards a user interface displayassociated with a second application; and displaying, by the at leastone computing device, contents of the second clipboard in response tothe fourth flick gesture.
 13. A system, comprising: at least onecomputing device comprising a processor, a memory, and a touchscreen;machine-readable instructions stored in the memory that, when executedby the processor, cause the at least one computing device to at least:detect a selection of first content and a first flick gesture via thetouchscreen, the first flick gesture comprising flicking towards a firstedge of the touchscreen; determine a clipboard from among a plurality ofclipboard destinations based on the first flick gesture; add the firstcontent to the clipboard in response to the first flick gesture; detecta selection of second content and a second flick gesture via thetouchscreen, the second flick gesture comprising flicking from the firstedge of the touchscreen towards a user interface display associated withan application, wherein the application is separate from the clipboard;determine the clipboard from among the plurality of clipboarddestinations based on the second flick gesture; and add the secondcontent to the clipboard in response to the second flick gesture. 14.The system of claim 13, wherein the each of the plurality of clipboarddestinations is associated with a respective edge of the touchscreen.15. The system of claim 13, wherein the machine-readable instructions,when executed by the processor, further cause the at least one computingdevice to at least: detect a third flick gesture from an edge of thetouchscreen towards a user interface display associated with anapplication; and display, by the at least one computing device, contentsof the clipboard in response to the third flick gesture.
 16. The systemof claim 15, wherein the machine-readable instructions, when executed bythe processor, further cause the at least one computing device to atleast: in response to the selection of at least one of the contents ofthe clipboard, deliver the at least one of the contents to theapplication.
 17. The system of claim 13, wherein the machine-readableinstructions, when executed by the processor, further cause the at leastone computing device to at least: detect a selection of third contentand a fourth flick gesture via the touchscreen; determine a secondclipboard from among the plurality of clipboard destinations based onthe first flick gesture; and add the second content to the secondclipboard in response to the second flick gesture.
 18. The method ofclaim 10, wherein delivering the first content from the first clipboardto the application comprises utilizing an application programminginterface (API) provided by the application.
 19. The non-transitorycomputer-readable medium of claim 6, wherein the at least one computingdevice is further directed to utilize an application programminginterface (API) provided by the application to deliver the at least oneof the contents to the application.
 20. The system of claim 16, whereinthe machine-readable instructions, when executed by the processor,further cause the at least one computing device to at least utilize anapplication programming interface (API) provided by the application todeliver the at least one of the contents to the application.